/*
 * DialogoProbabilidades.h
 *      Author: sebastian
 */

#ifndef DIALOGOPROBABILIDADES_H_
#define DIALOGOPROBABILIDADES_H_
#include "enumSpin.h"
#include <gtkmm.h>
#include <iostream>

class DialogoProbabilidades {
	std::map<int,Gtk::SpinButton*>* spinProbabilidades;
	Gtk::Dialog* dialogo;
	Gtk::CheckButton* esAgujero;
	bool clickAguj;
	bool puedeSerAgujero;
	Gtk::Box* box;

	//Devuelve la suma de las probabilidades.
	int deolverSumaProbabilidades();

public:
	DialogoProbabilidades(const Glib::RefPtr<Gtk::Builder>& builder);

	~DialogoProbabilidades();

	//Desplieega el dialogo de las probabilidades.
	//Devuelve true si las probabilidades suman 100 o si se setea como Agujero.
	//Esconde el dialogo.
	bool show();

	//Devuelve su map de SpinButton*
	std::map<int,Gtk::SpinButton*>& getSpinProbabilidades();

	//Setea los valores de los atributos.
	void setearValores(std::map<int,int>& map, bool click);

	//Devuelve el estado de clickAguj
	bool getClickAguj();

	//Establece si es posible que lo que se esta editando puede ser 
	//Agujero o no.
	void verCheckAgujero(bool estado);
	
	//Muestra u oculta el agujero, dependiendo de lo que se le establecio
	//a puedeSerAgujero
	void mostrarOcultarAgujero();
};

#endif /* DIALOGOPROBABILIDADES_H_ */
